import request from '@/utils/request'

// 获取接口信息列表（用户分页）
export function listInterfaceInfoUsingGET(params) {
  return request({
    url: '/interfaceInfo/list/page',
    method: 'get',
    params
  })
}

// 新增接口信息
export function addInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/add',
    method: 'post',
    data
  })
}

// 更新接口信息
export function updateInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/update',
    method: 'post',
    data
  })
}

// 删除接口信息
export function deleteInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/delete',
    method: 'post',
    data
  })
}

// 发布接口
export function onlineInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/online',
    method: 'post',
    data
  })
}

// 下线接口
export function offlineInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/offline',
    method: 'post',
    data
  })
}

// 获取接口信息列表（管理员）
export function listInterfaceInfoForAdminUsingGET(params) {
  return request({
    url: '/interfaceInfo/list',
    method: 'get',
    params
  })
}

// 根据ID获取接口信息
export function getInterfaceInfoByIdUsingGET(params) {
  return request({
    url: '/interfaceInfo/get',
    method: 'get',
    params
  })
}

// 调用接口
export function invokeInterfaceInfoUsingPOST(data) {
  return request({
    url: '/interfaceInfo/invoke',
    method: 'post',
    data
  })
}

// 获取接口统计信息（包含接口总数、在线接口数、调用总次数）
// 用于Dashboard统计页面，显示所有接口（包括下线的）
export function getInterfaceStatisticsUsingGET() {
  return request({
    url: '/interfaceInfo/list/page',
    method: 'get',
    params: {
      current: 1,
      pageSize: 1,
      reUseType: 'dashboard' // 添加复用类型标记，用于统计页面
    }
  })
}

// 获取最新接口列表
// 用于Dashboard页面显示最新接口，显示所有接口（包括下线的）
export function getLatestInterfacesUsingGET(params = {}) {
  return request({
    url: '/interfaceInfo/list/page',
    method: 'get',
    params: {
      current: 1,
      pageSize: 5,
      reUseType: 'dashboard', // 添加复用类型标记
      ...params
    }
  })
}

// 获取用户可见的接口列表（仅在线接口）
// 用于Interface页面，只显示在线的接口
export function getUserVisibleInterfacesUsingGET(params = {}) {
  return request({
    url: '/interfaceInfo/list/page',
    method: 'get',
    params: {
      current: 1,
      pageSize: 16,
      // 不传 reUseType，使用默认逻辑（只显示 status=1 的接口）
      ...params
    }
  })
}
